图像缩略图

applyhatch_plusc.

版本1.4.0.0(4.22 kB) 布莱恩·卡茨
修改APPLYHATCH_PLUS,允许颜色和可变厚度的舱口模式。
4.3
10评级

78下载

更新2017年4月21日

查看许可协议

编者按:这个文件被选为MATLAB中心本周精选

这是先前提交的ApplatedHatch_plus的修改。
ApplyHatch_plusc创建定义图形的位图版本,其中拼写的彩色元素被指定的彩色填充图案替换。
APPLYHATCH_PLUSC允许定义舱盖图案的颜色。颜色可以使用字符字符串或RGB值来定义。本文提供了各种示例,展示了APPLYHATCH_PLUSC和MAKEHATCH_PLUS的一些可能性。
注意:此功能与Brandon Levey的ApplyHatch_plusColor不同,功能略有不同的功能和语法。

引用作为

布莱恩·卡茨(2020)。applyhatch_plusc.(//www.tianjin-qmedu.com/matlabcentral/fileexchange/26797-applyhatch_plusc),Matlab中央文件兑换。检索到

意见及评分(33

tanfeng

@brian katz你好,亲爱的Brian Katz先生,你现在更新了这个工具吗?我非常渴望在最新的Matlab版本中顺利使用您的工具。谢谢你。

布莱恩·卡茨

请注意,我目前在最新的MatLab版本下工作有困难。一些被使用的隐藏的固有功能不再可用,替代功能的质量也不一样。所以,让你知道我正在努力……

布莱恩·卡茨

嗨@ min-her。在您的示例中,这是不可能的,因为1和6从栏中的颜色相同。它是用于识别元素的原始颜色(参见说明“彩色元素被指定的彩色宽敞的图案替换为”)。如果它们在原始图中的颜色中是相同的颜色,则无法分配不同的舱口信息。您需要以不同的颜色为要定义的不同元素生成不同颜色的基本曲线。

分钟他

嗨,@brain katz,我很抱歉打扰你。我有一个问题在使用这个函数,我不知道如何解决它。我想用堆叠的风格吧,同一个堆栈使用相同的堆栈和不同颜色。例如:
Num = [1 2 3 4 5;6 7 8 9 10];
x = [2,8];
酒吧(x, num,“堆叠”);
我希望第一个堆栈[1 2 3 4 5]使用相同的舱口和不同的颜色,[6 7 8 9 10]使用相同的舱口和不同的颜色。但是当我使用applyhatch_plusC时,我发现1和6有相同的舱口。你能帮我解决这个问题吗?谢谢!

RMan !

@Brian,请在你可以的时候更新。我很想用这个!似乎没有这种类型的其他工具可用。谢谢你的辛勤工作!

布莱恩·卡茨

正如@liruixinch所指出的,您可能需要调整DPI以获得您想要的结果。MatLab改变了BMP图像的创建方式,我不太喜欢它们。因此,将DPI移动到300或600将提供更清晰的文本,但您可能需要调整模式以使其可见。我会想办法定义不同的分辨率(文本和孵化),但我近期没有时间这么做。万博 尤文图斯
请测试导出到TIFF文件,以防质量差是MATLAB图像渲染也......

梅莉

嗨,@brian katz,我是一名研究生。我可以使用matlab 2017b在文档中运行示例,但该数字未完成。我的意思是它丢失了一些功能或显示不匹配代码。而且,字母和数字非常模糊。你能帮我解决这个问题吗?非常感谢

布莱恩·卡茨

@Shuppar,你似乎没有遵循函数语法,我不知道你想做什么,因为它是不正确的。请试着举例并改正,从简单的例子开始。PATTERN和PATTERNCOLORS必须相同的长度。
applyhatch_plusC (h、模式、patterncolors)

Shuppar

applyhatch_pluscolor (fh,“x + /。\ |。', 1, [1 1 1 1 0 1 1], ct);

错误使用makehatch_plus
输入参数太多。

applyhatch_pluscolor错误(第195行)
模式= makehatch_plus(模式(pati)、6 * hatchsc lw);

为什么我得到上述错误?

liruixinch liruixinch

感谢,此版本的代码可以在Matlab2018中运行。我们可以调整第5个输入参数以使数字更平滑。

布莱恩·卡茨

注意:这个函数目前在MatLab的最新版本中有问题(从2017b开始)。我目前正在努力解决这个问题……这个错误不是规则的,但是会导致非独特的颜色/模式被归为属性。如果您现在继续使用,请检查您的输出。

布莱恩·卡茨

丹尼,你有没有试着提高BMP输出打印的分辨率?这个注释在前面提到过,并且解决方案在函数中有很好的文档记录。

丹尼

您好,我是使用Matlab 2018A的研究生。这段代码对我的酒吧工作非常好,但结果并不漂亮。我从这个代码中获得的图表看起来像我在80年代-90s发表的论文中看到的低质量数字。特别是字母不顺利。

布莱恩·卡茨

这个函数应该很容易做到。抱歉,我不明白你的问题。你试过这个功能吗?困难是什么?

Tiago Dias.

你好,如果我有一个法线图,在一个定义好的区域(x1,y1) -> (x2,y2)不是填充蓝色实心,而是填充蓝色对角线?

你们谢

Luis Marval

布莱恩·卡茨

我不太明白这个评论。如果您的意思是数字(打勾标签等)的分辨率很差,那么这是因为该函数创建了一个BMP图像。如果分辨率不是您所喜欢的,您只需要增加DPI。这是我对已出版作品所做的,而不是屏幕分辨率(默认)。增加DPI也会影响模式密度,所以为了得到您想要的效果,可能需要进行一些操作。

junmin王

谢谢你!但这个数字很难看。

布莱恩·卡茨

我做了一些非常小的修改,函数现在又可以工作了。
我已经测试了所有示例,并且没有更多的问题报告。

andreas wachaja.

似乎已经过时了,甚至这个例子甚至会导致Matlab R2015A的质量糟糕的剧情

Muhammad Babar Rasheed

你好,
使用“aplyhatch_plusc”函数时,我发现以下错误。
PATTERN和PATTERNCOLORS必须相同的长度。
请注意如何解决此错误。

提前谢谢。

严厉的

你好,
我使用了applyhatch_plus和makehatch_plus,正如applyhatch_plus中给出的示例所示。然而,在这两种情况下,我得到的错误陈述如下:
例子:
酒吧(兰特(3,4));
im_hatch = applyhatch_plus (gcf \ - x。,600年);
错误信息:
"试图访问colorlist(1,2);指数从
界限,因为numel(colorlist)= 1。

applyhatch_plus>nextnonbw错误(第142行)
= (colorlist(out,1) == bits(:,:,1))
&...

applyhatch_plus错误(第69行)
(颜色、colori) =
nextnonbw (0 colorlist比特);“

我相信,人们已经多次使用它,它正在工作。
但我不确定我做错了什么。

感谢您的帮助。

布莱恩·卡茨

这一修正现已被纳入最近的更新中。

布雷特•沃克

当您测试长度时,现在在线95上,使用长度函数返回最长尺寸中的元素数(例如,a = [2x3],然后长度(a)= 3)这将导致图案色彩矩阵与<3种颜色(行)失败,因为长度(图案)<3和长度(图案色彩)= 3。

如果您使用size(patterncolors,1)而不是length(patterncolors)(在第95行条件中),这个问题将被删除,因为它只返回第一个维度的元素数量。

布莱恩·卡茨

很抱歉,我不理解你提出的修改。pattern和PATTERNCOLORS的条目数量必须相等,否则组合会太少/太多。PATTERNCOLORS可以是一个颜色字符的字符串数组,也可以是一个3列的RGB值。这不能大于或小于3为RGB。
如果你有具体的例子有问题,请发给我。

tymofii tereshchenko.

布雷特•沃克

我必须改变ApplyHatch_Plusc的第97行来处理具有少于3行的图案色彩的矩阵。

96:[patterncolors_row patterncolors_col] =大小(图案色彩);
97: if length(patterns) ~= patterncolors_row
98:错误(...)
99:结束

你认为你可以做这个,或者其他适当的改变,来允许矩阵少于3行。

布莱恩·卡茨

ApplyHatch_Plusc适用于整个数字,包括子图,所以我不明白这个问题。但是,您不能为两个子图使用不同的阴影规则。但是,如果您确保原始子图没有任何常见的颜色,则仍然可以自由地使结果成为您想要的任何东西。

里卡多Roldan称

嘿,
不管怎样,把它和次要情节结合起来?
欢呼,
里卡多

牛仔裤sik胫骨

好的!

Zuofeng

好工具!

对我帮助很大!

负担

更新

1.4.0.0.

对报告错误进行小的修改。
所有的例子现在像以前一样正确地运行。

1.3.0.0.

如评注所指出的,修正了少于3种颜色的情况。

1.1.0.0

现在包括修改的makehatch_plus,以允许可变厚度的舱口

MATLAB版本兼容性
创建R2017a
与任何版本兼容
平台的兼容性
窗户 苹果系统 Linux
确认

启发:孵化填充图案加上

启发:st